QWebPage提供了一个可用来观看及编辑网页文档的对象。
QWebPage维护 着一个主 帧, 主帧 又维护着以下信息:网页内容 、设置项、浏览历史和动作对象。 这个类可 与 QWebFrame 一起使用,来在无图形界面的环境里提供类似于 QWebView 的功能。
QWebPage 的编程接口与 QWebView 非常类似, 妳同样可使用常用的函数,例如: action () ( 在 QWebView 中叫做 pageAction ()) 、 triggerAction () 、 findText () 和 settings () 。 在 QWebPage 的 主帧中还有更多的 QWebView 风格的函数, 而主帧是通过 mainFrame ()函数获取的。例如,QWebPage 的 load () 、 setUrl () 和 setHtml ()函数也可通过 QWebFrame 来使用。
当页面开始载入时,会发射 loadStarted ()信号。另外 ,每当网页 中的某个元素完成载入 时,就会发射 loadProgress ()信号,例如载入了一个图片、脚本等等。最后 , 当网页内容已经完全载入 时, 会发射 loadFinished ()信号, 不过脚本的执行和网页的渲染不算在内。 它的参数是逻辑值,表示了载入操作 是否成功。
在绘制一个QWebPage 对象之前,需要 先调用 setViewportSize ()来设置视口的尺寸。然后 ,调用主帧的渲染函数 ( QWebFrame::render ())。 以下代码片段演示了如何做到这一点。
假设 我们有个 Thumbnail 类,像以下的这样:
class Thumbnailer : public QObject
{
Q_OBJECT
public:
Thumbnailer(const QUrl &url);
signals:
void finished();
private slots:
void render();
private:
QWebPage page;
};
Thumbnail 的构造函数需要一个 url 作为参数。 我们将 QWebPage 对象的 loadFinished() 信号连接到我们的私有槽render()上。
Thumbnailer::Thumbnailer(const QUrl &url)
{
page.mainFrame()->load(url);
connect(&page, SIGNAL(loadFinished( bool )),
this, SLOT(render()));
}
render()函数演示 了如何使用 一个QWebPage 对象来绘制缩略图。
void Thumbnailer::render()
{
page.setViewportSize(page.mainFrame()->contentsSize());
QImage image(page.viewportSize(), QImage ::Format_ARGB32);
QPainter painter(&image);
page.mainFrame()->render(&painter);
painter.end();
QImage thumbnail = image.scaled(400, 400);
thumbnail.save("thumbnail.png");
emit finished();
}
首先 ,设置 视口尺寸 ( viewportSize ),然后实例 化一个 QImage 对象 image , 它的尺寸与视口尺寸 ( viewportSize ) 一致。然后 将这个图片作为参数发送给一个绘图器。 接下来,我们将 主帧和内容和子帧都渲染到绘图器里。最后 ,我们保存缩放过后的图片。
参考 QWebFrame 。
这个枚举类型表示的是可在网页上进行的那些动作的类型。
各个动作都只会在它们可被应用的时候才会有效果。可对由 action ()返回的动作对象调用 isEnabled() 函数,以检查该动作当前是否可用。
启用文字编辑、光标移动及文字选择动作的一种方法就是将 contentEditable 设置为真(true)。
常量 |
值 |
说明 |
QWebPage::NoWebAction |
-1 |
没有哪个动作被触发。 |
QWebPage::OpenLink |
0 |
打开当前链接。 |
QWebPage::OpenLinkInNewWindow |
1 |
在新窗口中打开当前链接。 |
QWebPage::OpenFrameInNewWindow |
2 |
在新窗口中打开当前帧。 |
QWebPage::DownloadLinkToDisk |
3 |
将当前链接的目标内容下载到硬盘。 |
QWebPage::CopyLinkToClipboard |
4 |
将当前链接地址复制到剪贴板。 |
QWebPage::OpenImageInNewWindow |
5 |
在新窗口中打开当前高亮显示的图片。 |
QWebPage::DownloadImageToDisk |
6 |
将当前高亮显示的图片下载到硬盘。 |
QWebPage::CopyImageToClipboard |
7 |
将当前高亮显示的图片复制到剪贴板。 |
QWebPage::CopyImageUrlToClipboard |
68 |
将当前高亮显示的图片的URL复制到剪贴板。 |
QWebPage::Back |
8 |
按照浏览的历史关系,后退。 |
QWebPage::Forward |
9 |
按照浏览的历史关系,前进。 |
QWebPage::Stop |
10 |
停止载入当前页面。 |
QWebPage::StopScheduledPageRefresh |
67 |
停止所有未完成的页面刷新/重定向请求。 |
QWebPage::Reload |
11 |
重新载入当前页面。 |
QWebPage::ReloadAndBypassCache |
53 |
重新载入当前页面,但是不要使用任何的本地缓存。(在Qt 4.6 中加入) |
QWebPage::Cut |
12 |
将当前选中的内容剪切到剪贴板中。 |
QWebPage::Copy |
13 |
将当前选中的内容复制到剪贴板中。 |
QWebPage::Paste |
14 |
粘贴来自剪贴板的内容。 |
QWebPage::Undo |
15 |
撤销最后一次编辑动作。 |
QWebPage::Redo |
16 |
重做最后一次编辑动作。 |
QWebPage::MoveToNextChar |
17 |
将光标移动到下一个字符处。 |
QWebPage::MoveToPreviousChar |
18 |
将光标移动到上一个字符处。 |
QWebPage::MoveToNextWord |
19 |
将光标移动到下一个单词处。 |
QWebPage::MoveToPreviousWord |
20 |
将光标移动到上一个单词处。 |
QWebPage::MoveToNextLine |
21 |
将光标移动到下一行。 |
QWebPage::MoveToPreviousLine |
22 |
将光标移动到上一行。 |
QWebPage::MoveToStartOfLine |
23 |
将光标移动到行首。 |
QWebPage::MoveToEndOfLine |
24 |
将光标移动到行尾。 |
QWebPage::MoveToStartOfBlock |
25 |
将光标移动到块的开头。 |
QWebPage::MoveToEndOfBlock |
26 |
将光标移动到块的末尾。 |
QWebPage::MoveToStartOfDocument |
27 |
将光标移动到文档的开头。 |
QWebPage::MoveToEndOfDocument |
28 |
将光标移动到文档的末尾。 |
QWebPage::SelectNextChar |
29 |
选中直到下一个字符的内容。 |
QWebPage::SelectPreviousChar |
30 |
选中直到上一个字符的内容。 |
QWebPage::SelectNextWord |
31 |
选中直到下一个单词的内容。 |
QWebPage::SelectPreviousWord |
32 |
选中直到上一个单词的内容。 |
QWebPage::SelectNextLine |
33 |
选中直到下一行的内容。 |
QWebPage::SelectPreviousLine |
34 |
选中直到上一行的内容。 |
QWebPage::SelectStartOfLine |
35 |
选中直到行首的内容。 |
QWebPage::SelectEndOfLine |
36 |
选中直到行尾的内容。 |
QWebPage::SelectStartOfBlock |
37 |
选中直到块开头的内容。 |
QWebPage::SelectEndOfBlock |
38 |
选中直到块末尾的内容。 |
QWebPage::SelectStartOfDocument |
39 |
选中直到文档开头的内容。 |
QWebPage::SelectEndOfDocument |
40 |
选中直到文档末尾的内容。 |
QWebPage::DeleteStartOfWord |
41 |
删除直到单词开头的内容。 |
QWebPage::DeleteEndOfWord |
42 |
删除直到单词末尾的内容。 |
QWebPage::SetTextDirectionDefault |
43 |
将文字排版方向设置为默认方向。 |
QWebPage::SetTextDirectionLeftToRight |
44 |
将文字排版方向设置为从左到右。 |
QWebPage::SetTextDirectionRightToLeft |
45 |
将文字排版方向设置为从右到左。 |
QWebPage::ToggleBold |
46 |
在粗体和普通字体之间切换。 |
QWebPage::ToggleItalic |
47 |
在任何和普通字体之间切换。 |
QWebPage::ToggleUnderline |
48 |
切换下划线装饰。 |
QWebPage::InspectElement |
49 |
显示出针对当前高亮显示的HTML 元素的网页分析器(Web Inspector)。 |
QWebPage::InsertParagraphSeparator |
50 |
插入一个新的段落。 |
QWebPage::InsertLineSeparator |
51 |
插入新的一行。 |
QWebPage::SelectAll |
52 |
选中所有内容。 |
QWebPage::PasteAndMatchStyle |
54 |
按照当前的样式单风格,将剪贴板中的内容粘贴出来。 |
QWebPage::RemoveFormat |
55 |
删除格式及样式风格。 |
QWebPage::ToggleStrikethrough |
56 |
在删除线风格和普通风格之间切换。 |
QWebPage::ToggleSubscript |
57 |
在下标格式状态及普通状态之间切换。 |
QWebPage::ToggleSuperscript |
58 |
在上标格式状态及普通状态之间切换。 |
QWebPage::InsertUnorderedList |
59 |
对于当前选中的内容,在无序列表(☯:原文是an ordered list)和普通文字块状态之间切换。 |
QWebPage::InsertOrderedList |
60 |
对于当前选中的内容,在有序列表和普通文字块状态之间切换。 |
QWebPage::Indent |
61 |
将当前选中的格式块的缩进状态增加一级。 |
QWebPage::Outdent |
62 |
将当前选中的格式块的缩进状态减少一级。 |
QWebPage::AlignCenter |
63 |
将内容居中对齐。 |
QWebPage::AlignJustified |
64 |
对内容应用完整的调整(justification)。 |
QWebPage::AlignLeft |
65 |
对内容应用左对齐的调整。 |
QWebPage::AlignRight |
66 |
对内容应用右对齐的调整。 |
当全局的进度值发生改变时,会发射这个信号。当前值由 progress 给出,其取值范围为 0 到 100 ,这也是 QProgressBar 的默认取值范围。它会将所有子代帧的变化值累积起来。
参考 bytesReceived ()。
美女
未知美人
HxLauncher: Launch Android applications by voice commands